IMAGE_IMPORT_DESCRIPTOR:
1er DWORD |
Original First Thunk |
60 71 00 00 |
2nd DWORD |
Date Time Stamp |
64 AB 2F 32 |
3e DWORD |
Forwarder Chain |
FF FF FF FF |
4e DWORD |
Name |
E8 74 00 00 |
5e DWORD |
First Thunk |
70 73 00 00 |
|
--> |
00 00 71 60 |
............ |
............ |
00 00 74 E8 |
00 00 73 70 |
|
--> |
00 00 45 60 |
.......... |
.......... |
00 00 48 E8 |
00 00 47 70 |
|
Reprenons... On va commencer par le 4e DWORD ce sera plus simple.
Le 4e DWORD d'une structure IMAGE_IMPORT_DESCRIPTOR pointe sur l'adresse du
nom de la DLL.
4e DWORD |
Name |
E8 74 00 00 |
|
--> |
|
--> |
|
et en 000048E8 on trouve bien :
000048E0 |
7865 |
6375 |
7465 |
4100 |
5348 |
454C |
4C33 |
322E |
xecuteA.SHELL32. |
000048F0 |
646C |
6C00 |
7100 |
4578 |
6974 |
5072 |
6F63 |
6573 |
dll.q.ExitProces |
Le 1er DWORD pointe sur une structure "ORIGINAL_FIRST_THUNK":
"ORIGINAL_FIRST_THUNK" est constituée elle-même de plusieurs
DWORD qui repésentent des RVA pointant sur une structure IMAGE_IMPORT_BY_NAME.
Cette dernière structure est l'endroit où est écrit le
n°Ordinal + le nom d'une fonction appartenant à cette DLL.
00004400 |
6071 |
0000 |
64AB |
2F32 |
FFFF |
FFFF |
E874 |
0000 |
.'q..d./2.....t.. 1er
IMA_IMP_DESCR (SHELL32.dll) |
00004410 |
7073 |
0000 |
D070 |
0000 |
A01C |
0C32 |
FFFF |
FFFF |
ps...p.....2....2nd IMA_IMP_DESCR
(KERNEL32.dll) |
00004420 |
E076 |
0000 |
E072 |
0000 |
7871 |
0000 |
63E4 |
FD2F |
.v...r..xq..c../ 3e IMA_IMP_DESCR
(USER32.dll) |
00004430 |
FFFF |
FFFF |
D67A |
0000 |
8873 |
0000 |
7870 |
0000 |
.....z...s..xp..4e IMA_IMP_DESCR
(GDI.32.dll) |
00004440 |
BC83 |
F32F |
FFFF |
FFFF |
167C |
0000 |
8872 |
0000 |
.../.....|...r.. |
00004450 |
6C72 |
0000 |
64AB |
2F32 |
FFFF |
FFFF |
8C7C |
0000 |
lr..d./2.....|.. 5e IMA_IMP_DESCR
(Comdlg.dll) |
00004460 |
7C74 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
|t.............. |
00004470 |
0000 |
0000 |
0000 |
0000 |
0A7C |
0000 |
F87B |
0000 |
.........|...{..ORIGINAL_FIRST_THUNK
de GDI32.dll |
00004480 |
1C7B |
0000 |
F27A |
0000 |
047B |
0000 |
107B |
0000 |
.{...z...{...{.. |
00004490 |
E27A |
0000 |
407B |
0000 |
4C7B |
0000 |
367B |
0000 |
.z..@|..L{..6{.. |
000044A0 |
687B |
0000 |
7E7B |
0000 |
587B |
0000 |
9C7B |
0000 |
h{..~{..X{...{.. |
000044B0 |
AE7B |
0000 |
8E7B |
0000 |
C87B |
0000 |
D27B |
0000 |
.{...{...{...{.. |
000044C0 |
BA7B |
0000 |
2C7B |
0000 |
E47B |
0000 |
0000 |
0000 |
.{..,{...{...... |
000044D0 |
F675 |
0000 |
EA75 |
0000 |
DA75 |
0000 |
0476 |
0000 |
.u...u...u...v.. ORIGINAL_FIRST_THUNK
de KERNEL32.dll |
000044E0 |
1E76 |
0000 |
2876 |
0000 |
3676 |
0000 |
1076 |
0000 |
.v..(v..6v...v.. |
000044F0 |
AE75 |
0000 |
CE75 |
0000 |
5E76 |
0000 |
6876 |
0000 |
.u...u..^v..hv.. |
00004500 |
7476 |
0000 |
8476 |
0000 |
9276 |
0000 |
A076 |
0000 |
tv...v...v...v.. |
00004510 |
B076 |
0000 |
C276 |
0000 |
D476 |
0000 |
BA75 |
0000 |
.v...v...v...u.. |
00004520 |
8475 |
0000 |
9C75 |
0000 |
9075 |
0000 |
5A75 |
0000 |
.u...u...u..Zu.. |
00004530 |
7475 |
0000 |
6675 |
0000 |
2875 |
0000 |
4875 |
0000 |
tu..fu..(u..Hu.. |
00004540 |
3A75 |
0000 |
F474 |
0000 |
1675 |
0000 |
0275 |
0000 |
:u...t...u...u.. |
00004550 |
4076 |
0000 |
4A76 |
0000 |
5476 |
0000 |
0000 |
0000 |
@v..Jv..Tv...... |
00004560 |
|
B474 |
0000 |
A674 |
0000 |
C674 |
0000 |
.t...t...t...t.. O ORIGINAL_FIRST_THUNK
de SHELL32.dll |
00004570 |
9874 |
0000 |
0000 |
0000 |
6678 |
0000 |
5278 |
0000 |
.t......fx..Rx.. ORIGINAL_FIRST_THUNK
de USER32.dll |
00004580 |
327A |
0000 |
8678 |
0000 |
9278 |
0000 |
A278 |
0000 |
2z...x...x...x.. |
00004590 |
B478 |
0000 |
D278 |
0000 |
E278 |
0000 |
F078 |
0000 |
.x...x...x...x.. |
000045A0 |
FA78 |
0000 |
0879 |
0000 |
1C79 |
0000 |
2C79 |
0000 |
.x...y...y..,y.. |
000045B0 |
4679 |
0000 |
5879 |
0000 |
6A79 |
0000 |
7879 |
0000 |
Fy..Xy..jy..xy.. |
000045C0 |
8C79 |
0000 |
A079 |
0000 |
AC79 |
0000 |
BC79 |
0000 |
.y...y...y...y.. |
000045D0 |
C879 |
0000 |
D879 |
0000 |
E879 |
0000 |
FA79 |
0000 |
.y...y...y...y.. |
000045E0 |
0C7A |
0000 |
227A |
0000 |
3A78 |
0000 |
447A |
0000 |
.z.."z..:x..Dz.. |
000045F0 |
507A |
0000 |
587A |
0000 |
6E7A |
0000 |
7E7A |
0000 |
Pz..Xz..nZ..~z.. |
00004600 |
967A |
0000 |
A87A |
0000 |
B87A |
0000 |
CA7A |
0000 |
.z...z...z...z.. |
00004610 |
0078 |
0000 |
F477 |
0000 |
E477 |
0000 |
D677 |
0000 |
.x...w...w...w.. |
00004620 |
C877 |
0000 |
B677 |
0000 |
A477 |
0000 |
8E77 |
0000 |
.w...w...w...w.. |
00004630 |
8077 |
0000 |
7477 |
0000 |
5E77 |
0000 |
5277 |
0000 |
.w..tw..^w..Rw.. |
00004640 |
4677 |
0000 |
3677 |
0000 |
2A77 |
0000 |
1A77 |
0000 |
Fw..6w..*w...w.. |
00004650 |
0E77 |
0000 |
FC76 |
0000 |
EE76 |
0000 |
1278 |
0000 |
.w...v...v...x.. |
00004660 |
2678 |
0000 |
7478 |
0000 |
0000 |
0000 |
387C |
0000 |
&x..tx......8|.. ORIGINAL_FIRST_THUNK
de Comdlg.dll |
00004670 |
4C7C |
0000 |
5C7C |
0000 |
6876 |
0000 |
7C7C |
0000 |
L|..\|..h|..||.. |
00004680 |
207C |
0000 |
0000 |
0000 |
F02C |
F3BF |
A724 |
F3BF |
|.......,...$.. FIRST_THUNK de GDI32.dll |
00004690 |
5A21 |
F3BF |
1745 |
F3BF |
9724 |
F3BF |
AB24 |
F3BF |
Z!...E...$...$.. |
000046A0 |
9F24 |
F3BF |
5724 |
F3BF |
6310 |
F3BF |
B324 |
F3BF |
.$..W$..c....$.. |
000046B0 |
361B |
F3BF |
4F13 |
F3BF |
5110 |
F3BF |
E110 |
F3BF |
6...O...Q....... |
000046C0 |
E724 |
F3BF |
7E22 |
F3BF |
8218 |
F3BF |
1D1C |
F3BF |
.$..~".......... |
000046D0 |
FB24 |
F3BF |
AF24 |
F3BF |
111C |
F3BF |
0000 |
0000 |
.$...$.......... |
000046E0 |
0449 |
F7BF |
2CCE |
F9BF |
136E |
F7BF |
9573 |
F7BF |
.I..,....n...s.. FIRST_THUNK
de KERNEL32.dll |
000046F0 |
8382 |
F9BF |
A2DF |
F9BF |
E8CD |
F9BF |
FFCF |
F9BF |
................ |
00004700 |
7072 |
F7BF |
1E73 |
F7BF |
9482 |
F9BF |
204A |
F7BF |
pr...s...... J.. |
00004710 |
CF6D |
F7BF |
8B6D |
F7BF |
0449 |
F7BF |
7D71 |
F7BF |
.m...m...I..}q.. |
00004720 |
DC7B |
F7BF |
607E |
F7BF |
AA72 |
F7BF |
7776 |
F7BF |
.{..'~...r..wv.. |
00004730 |
5B73 |
F7BF |
187A |
F7BF |
7364 |
F7BF |
E472 |
F7BF |
[s...z..sd...r.. |
00004740 |
4129 |
F8BF |
9C79 |
F7BF |
659F |
F8BF |
33FB |
F7BF |
A)...y..e...3... |
00004750 |
F16D |
F7BF |
CDAE |
F8BF |
5476 |
F7BF |
BD75 |
F7BF |
.m......Tv...u.. |
00004760 |
BECD |
F9BF |
FB73 |
F7BF |
2574 |
F7BF |
0000 |
0000 |
.....s..%t...... |
00004770 |
|
222B |
DC7F |
DD71 |
DD7F |
2012 |
DC7F |
...."+...q.. ... FIRST_THUNK
de SHEL32.dll |
00004780 |
3CB0 |
E07F |
0000 |
0000 |
BD4C |
F6BF |
7C4D |
F6BF |
<........L..|M.. FIRST_THUNK de
USER32.dll |
00004790 |
1817 |
F6BF |
6A40 |
F6BF |
962B |
F6BF |
482B |
F6BF |
....j@...+..H+.. |
000047A0 |
0F48 |
F6BF |
702C |
F6BF |
4C1A |
F6BF |
DB22 |
F6BF |
.H..p,..L....".. |
000047B0 |
0C4B |
F6BF |
4D12 |
F6BF |
5C1A |
F6BF |
FB13 |
F6BF |
.K..M...\....... |
000047C0 |
CD4B |
F6BF |
CF51 |
F6BF |
8F4F |
F6BF |
112D |
F6BF |
.K...Q...O...-.. |
000047D0 |
8B48 |
F6BF |
5A2B |
F6BF |
A923 |
F6BF |
F540 |
F6BF |
.H..Z+...#...@.. |
000047E0 |
AD45 |
F6BF |
8D4D |
F6BF |
3116 |
F6BF |
AC26 |
F6BF |
.E...M..1....&.. |
000047F0 |
942D |
F6BF |
661F |
F6BF |
224D |
F6BF |
521F |
F6BF |
.-..f..."M..R... |
00004800 |
5F23 |
F6BF |
A84D |
F6BF |
5045 |
F6BF |
A34E |
F6BF |
_#...M..PE...N.. |
00004810 |
2746 |
F6BF |
B01D |
F6BF |
5716 |
F6BF |
114B |
F6BF |
'F......W....K.. |
00004820 |
8123 |
F6BF |
9746 |
F6BF |
9123 |
F6BF |
C123 |
F6BF |
.#...F...#...#.. |
00004830 |
D938 |
F6BF |
2B51 |
F6BF |
9E2B |
F6BF |
3732 |
F6BF |
.8..+Q...+..7#.. |
00004840 |
5A1F |
F6BF |
BE1A |
F6BF |
7D23 |
F6BF |
F610 |
F6BF |
Z.......}#...... |
00004850 |
794F |
F6BF |
B64D |
F6BF |
B847 |
F6BF |
884C |
F6BF |
yO...M...G...L.. |
00004860 |
4723 |
F6BF |
3220 |
F6BF |
DC14 |
F6BF |
5F3E |
F6BF |
G#..2......_>.. |
00004870 |
E94C |
F6BF |
0815 |
F6BF |
0000 |
0000 |
954F |
E87F |
.L...........O.. FIRST_THUNK de Comdlg.dll |
00004880 |
A868 |
E87F |
6857 |
E87F |
6211 |
E87F |
A34F |
E87F |
.h..hW..b....O.. |
00004890 |
9C60 |
E87F |
0000 |
0000 |
4C00 |
5368 |
656C |
6C41 |
.'......L.ShellA |
000048A0 |
626F |
7574 |
4100 |
0900 |
4472 |
6167 |
4669 |
6E69 |
boutA...DragFini |
000048B0 |
7368 |
0000 |
0B00 |
4472 |
6167 |
5175 |
6572 |
7946 |
sh....DragQueryF |
000048C0 |
696C |
6541 |
0000 |
0800 |
4472 |
6167 |
4163 |
6365 |
ileA....DragAcce |
000048D0 |
7074 |
4669 |
6C65 |
7300 |
4E00 |
5368 |
656C |
6C45 |
ptFiles.N.ShellE |
000048E0 |
7865 |
6375 |
7465 |
4100 |
5348 |
454C |
4C33 |
322E |
xecuteA.SHELL32. |
000048F0 |
646C |
6C00 |
7100 |
4578 |
6974 |
5072 |
6F63 |
6573 |
dll.q.ExitProces |
00004900 |
7300 |
F900 |
4765 |
744D |
6F64 |
756C |
6548 |
616E |
s...GetModuleHan |
00004910 |
646C |
6541 |
0000 |
2401 |
4765 |
7453 |
7461 |
7274 |
dleA..$.GetStart |
00004920 |
7570 |
496E |
666F |
4100 |
BC00 |
4765 |
7443 |
6F6D |
upInfoA...GetCom |
00004930 |
6D61 |
6E64 |
4C69 |
6E65 |
4100 |
5601 |
476C |
6F62 |
mandLineA.V.Glob |
00004940 |
616C |
4672 |
6565 |
0000 |
F100 |
4765 |
744C |
6F63 |
alFree....GetLoc |
00004950 |
616C |
6549 |
6E66 |
6F41 |
0000 |
9F02 |
6C73 |
7472 |
aleInfoA....lstr |
00004960 |
6370 |
7941 |
0000 |
3900 |
4372 |
6561 |
7465 |
4669 |
cpyA..9.CreateFil |
00004970 |
6C65 |
4100 |
EF00 |
4765 |
744C |
6173 |
7445 |
7272 |
leA...GetLastErr |
00004980 |
6F72 |
0000 |
9602 |
6C73 |
7472 |
6361 |
7441 |
0000 |
or....lstrcatA.. |
00004990 |
9100 |
4669 |
6E64 |
436C |
6F73 |
6500 |
9500 |
4669 |
..FindClose...Fi |
000049A0 |
6E64 |
4669 |
7273 |
7446 |
696C |
6541 |
0000 |
9902 |
ndFirstFileA |
000049B0 |
6C73 |
7472 |
636D |
7041 |
0000 |
1D01 |
4765 |
7450 |
lstrcmpA....GetP |
000049C0 |
726F |
6669 |
6C65 |
5374 |
7269 |
6E67 |
4100 |
A202 |
rofileStringA... |
000049D0 |
6C73 |
7472 |
6370 |
796E |
4100 |
9601 |
4C6F |
6361 |
lstrcpynA...Loca |
000049E0 |
6C52 |
6541 |
6C6C |
6F63 |
0000 |
9501 |
4C6F |
6361 |
lReAlloc....Loca |
000049F0 |
6C4C |
6F63 |
6B00 |
8F01 |
4C6F |
6361 |
6C41 |
6C6C |
lLock...LocalAll |
00004A00 |
6F63 |
0000 |
A502 |
6C73 |
7472 |
6C65 |
6E41 |
0000 |
oc....lstrlenA.. |
00004A10 |
9901 |
4C6F |
6361 |
6C55 |
6E6C |
6F63 |
6B00 |
8E02 |
..LocalUnlock... |
00004A20 |
5F6C |
636C |
6F73 |
6500 |
5500 |
4465 |
6C65 |
7465 |
_lclose.U.Delete |
00004A30 |
4669 |
6C65 |
4100 |
9302 |
5F6C |
7772 |
6974 |
6400 |
FileA..._lwrite. |
00004A40 |
8F02 |
5F6C |
6372 |
6561 |
7400 |
9102 |
5F6C |
6F70 |
.._lcreat..._lop |
00004A50 |
656E |
0000 |
9202 |
5F6C |
7265 |
6164 |
0000 |
9002 |
en...._lread.... |
00004A60 |
5F6C |
6C73 |
6565 |
6B00 |
9301 |
4C6F |
6361 |
6C46 |
_llseek...LocalF |
00004A70 |
7265 |
6500 |
6001 |
476C |
6F62 |
616C |
556E |
6C6F |
ree.'.GlobalUnlo |
00004A80 |
636B |
0000 |
5A01 |
476C |
6F62 |
616C |
4C6F |
636B |
ck..Z.GlobalLock |
00004A90 |
0000 |
4F01 |
476C |
6F62 |
616C |
416C |
6C6F |
6300 |
..O.GlobalAlloc. |
00004AA0 |
F000 |
4765 |
744C |
6F63 |
616C |
5469 |
6D65 |
0000 |
..GetLocalTime.. |
00004AB0 |
4101 |
4765 |
7454 |
696D |
6546 |
6F72 |
6D61 |
7441 |
A.GetTimeFormatA |
00004AC0 |
0000 |
D100 |
4765 |
7444 |
6174 |
6546 |
6F72 |
6D61 |
....GetDateForma |
00004AD0 |
7441 |
0000 |
9C02 |
6C73 |
7472 |
636D |
7069 |
4100 |
tA....lstrcmpiA. |
00004AE0 |
4B45 |
524E |
454C |
3332 |
2E64 |
6C6C |
0000 |
7F01 |
KERNEL32.dll.... |
00004AF0 |
4D6F |
7665 |
5769 |
6E64 |
6F77 |
0000 |
3B01 |
496E |
MoveWindow..;.In |
00004B00 |
7661 |
6C69 |
6461 |
7465 |
5265 |
6374 |
0000 |
C901 |
validateRect.... |
00004B10 |
5365 |
7446 |
6F63 |
7573 |
0000 |
8E01 |
506F |
7374 |
SetFocus....Post |
00004B20 |
4D65 |
7373 |
6167 |
6541 |
0000 |
E200 |
4765 |
7446 |
MessageA....GetF |
00004B30 |
6F63 |
7573 |
0000 |
AF01 |
5365 |
6E64 |
4D65 |
7373 |
ocus....SendMess |
00004B40 |
6167 |
6541 |
0000 |
5E01 |
4C6F |
6164 |
4963 |
6F6E |
ageA..^.LoadIcon |
00004B50 |
4100 |
2502 |
5769 |
6E48 |
656C |
7041 |
0000 |
CA01 |
A.%.WinHelpA.... |
00004B60 |
5365 |
7446 |
6F72 |
6567 |
726F |
756F |
6457 |
696E |
SetForegroundWin |
00004B70 |
646F |
7700 |
A900 |
456E |
6444 |
6961 |
6C6F |
6700 |
dow...EndDialog. |
00004B80 |
F901 |
5368 |
6F77 |
5769 |
6E64 |
6F77 |
0000 |
F200 |
..ShowWindow.... |
00004B90 |
4765 |
744C |
6173 |
7441 |
6374 |
6976 |
6550 |
6F70 |
GetLastActivePop |
00004BA0 |
7570 |
0000 |
A500 |
456E |
6162 |
6C65 |
4D65 |
6E75 |
up....EnableMenu |
00004BB0 |
4974 |
656D |
0000 |
7800 |
4465 |
6657 |
696E |
646F |
Item..x.DefWindo |
00004BC0 |
7750 |
726F |
6341 |
0000 |
7601 |
4D65 |
7373 |
6167 |
wProcA..v.Messag |
00004BD0 |
6542 |
6F78 |
4100 |
7501 |
4D65 |
7373 |
6167 |
6542 |
eBoxA.u.MessageB |
00004BE0 |
6565 |
7000 |
8100 |
4465 |
7374 |
726F |
7957 |
696E |
eep...DestroyWin |
00004BF0 |
646F |
7700 |
4D01 |
4973 |
4963 |
6F6E |
6963 |
0000 |
dow.M.IsIconic.. |
00004C00 |
9001 |
506F |
7374 |
5175 |
6974 |
4D65 |
7373 |
6167 |
..PostQuitMessag |
00004C10 |
6500 |
8600 |
4469 |
7370 |
6174 |
6368 |
4D65 |
7373 |
e...DispatchMess |
00004C20 |
6167 |
6541 |
0000 |
0F02 |
5472 |
616E |
736C |
6174 |
ageA....Translat |
00004C30 |
654D |
6573 |
7361 |
6765 |
0000 |
0C02 |
5472 |
616E |
eMessage....Tran |
00004C40 |
736C |
6174 |
6541 |
6363 |
656C |
6572 |
6174 |
6F72 |
slateAccelerator |
00004C50 |
4100 |
4901 |
4973 |
4469 |
616C |
6F67 |
4D65 |
7373 |
A.I.IsDialogMess |
00004C60 |
6167 |
6541 |
0000 |
FF00 |
4765 |
744D |
6573 |
7361 |
ageA....GetMessa |
00004C70 |
6765 |
4100 |
EE01 |
5365 |
7457 |
696E |
646F |
7754 |
geA...SetWindowT |
00004C80 |
6578 |
7441 |
0000 |
1E00 |
4368 |
6172 |
4E65 |
7874 |
extA....CharNext |
00004C90 |
4100 |
2F00 |
4368 |
6563 |
6B4D |
656E |
7549 |
7465 |
A./.CheckMenuIte |
00004CA0 |
6D00 |
3700 |
436C |
6F73 |
6543 |
6C69 |
7062 |
6F61 |
m.7.CloseClipboa |
00004CB0 |
7264 |
0000 |
4701 |
4973 |
436C |
6970 |
626F |
6172 |
rd..G.IsClipboar |
00004CC0 |
6446 |
6F72 |
6D61 |
7441 |
7661 |
696C |
6162 |
6C65 |
dFormatAvailable |
00004CD0 |
0000 |
8701 |
4F70 |
656E |
436C |
6970 |
626F |
6172 |
....OpenClipboar |
00004CE0 |
6400 |
1201 |
4765 |
7453 |
7562 |
4D65 |
6E75 |
0000 |
d...GetSubMenu.. |
00004CF0 |
F300 |
4765 |
744D |
656E |
7500 |
6801 |
4C6F |
6164 |
..GetMenu.h.Load |
00004D00 |
5374 |
7269 |
6E67 |
4100 |
5601 |
4C6F |
6164 |
4163 |
StringA.V.LoadAc |
00004D10 |
6365 |
6C65 |
7261 |
746F |
7273 |
4100 |
1501 |
4765 |
celeratorsA...Ge |
00004D20 |
7453 |
7973 |
7465 |
6D4D |
656E |
7500 |
A001 |
5265 |
tSystemMenu...Re |
00004D30 |
6769 |
7374 |
6572 |
5769 |
6E64 |
6F77 |
4D65 |
7373 |
gisterWindowMess |
00004D40 |
6167 |
6541 |
0000 |
E901 |
5365 |
7457 |
696E |
646F |
ageA....SetWindo |
00004D50 |
774C |
6F6E |
6741 |
0000 |
5000 |
4372 |
6561 |
7465 |
wLongA..P.Create |
00004D60 |
5769 |
6E64 |
6F77 |
4578 |
4100 |
5A01 |
4C6F |
6164 |
WindowExA.Z.Load |
00004D70 |
4375 |
7273 |
6F72 |
4100 |
9601 |
5265 |
6769 |
7374 |
CursorA...Regist |
00004D80 |
6572 |
436C |
6173 |
7345 |
7841 |
0000 |
1601 |
4765 |
erClassExA....Ge |
00004D90 |
7453 |
7973 |
7465 |
6D4D |
6574 |
7269 |
6373 |
0000 |
tSystemMetrics.. |
00004DA0 |
C001 |
5365 |
7443 |
7572 |
736F |
7200 |
1902 |
5570 |
..SetCursor...Up |
00004DB0 |
6461 |
7465 |
5769 |
6E64 |
6F77 |
0000 |
2200 |
4368 |
dateWindow..".Ch |
00004DC0 |
6172 |
5072 |
6576 |
4100 |
CF00 |
4765 |
7443 |
6C69 |
arPrevA...GetCli |
00004DD0 |
656E |
7452 |
6563 |
7400 |
8B01 |
5065 |
656B |
4D65 |
entRect...PeekMe |
00004DE0 |
7373 |
6167 |
6541 |
0000 |
C601 |
5365 |
7444 |
6C67 |
ssageA....SetDlg |
00004DF0 |
4974 |
656D |
5465 |
7874 |
4100 |
0202 |
5461 |
6262 |
ItemTextA...Tabb |
00004E00 |
6564 |
5465 |
7874 |
4F75 |
7441 |
0000 |
4600 |
4372 |
edTextOutA..F.Cr |
00004E10 |
6561 |
7465 |
4469 |
616C |
6F67 |
5061 |
7261 |
6D41 |
eateDialogParamA |
00004E20 |
0000 |
A700 |
456E |
6162 |
6C65 |
5769 |
6E64 |
6F77 |
....EnableWindow |
00004E30 |
0000 |
2601 |
4765 |
7457 |
696E |
646F |
7754 |
6578 |
..&.GetWindowTex |
00004E40 |
7441 |
0000 |
A301 |
5265 |
6C65 |
6173 |
6544 |
4300 |
ta....ReleaseDC |
00004E50 |
D800 |
4765 |
7444 |
4300 |
AD01 |
5365 |
6E64 |
446C |
..GetDC...SendDl |
00004E60 |
6749 |
7465 |
6D4D |
6573 |
7361 |
6765 |
4100 |
DC00 |
dItemMessageA... |
00004E70 |
4765 |
7444 |
6C67 |
4374 |
726C |
4944 |
0000 |
3200 |
GetDlgCtrlID..2. |
00004E80 |
4368 |
696C |
6457 |
696E |
646F |
7746 |
726F |
6D50 |
ChildWindowFromP |
00004E90 |
6F69 |
6E74 |
0000 |
A901 |
5363 |
7265 |
656E |
546F |
oint....ScreenTo |
00004EA0 |
436C |
6965 |
6E74 |
0000 |
D700 |
4765 |
7443 |
7572 |
Client....GetCur |
00004EB0 |
736F |
7250 |
6F73 |
0000 |
DF00 |
4765 |
7444 |
6C67 |
sorPos....GetDlg |
00004EC0 |
4974 |
656D |
5465 |
7874 |
4100 |
2D02 |
7773 |
7072 |
ItemTextA.-.wspr |
00004ED0 |
696E |
7466 |
4100 |
5553 |
4552 |
3332 |
2E64 |
6C6C |
intfA.USER32.dll |
00004EE0 |
0000 |
4600 |
4465 |
6C65 |
7465 |
4F62 |
6A65 |
6374 |
..F.DeleteObject |
00004EF0 |
0000 |
BC00 |
4765 |
7453 |
746F |
636B |
4F62 |
6A65 |
....GetStockObje |
00004F00 |
6374 |
0000 |
4300 |
4465 |
6C65 |
7465 |
4443 |
0000 |
ct..C.DeleteDC.. |
00004F10 |
0000 |
4162 |
6F72 |
7444 |
6F63 |
0000 |
0601 |
5365 |
..AbortDoc....Se |
00004F20 |
6C65 |
6374 |
4F62 |
6A65 |
6374 |
0000 |
4D00 |
456E |
lectObject..M.En |
00004F30 |
6444 |
6F63 |
0000 |
4E00 |
456E |
6450 |
6167 |
6500 |
dDoc..N.EndPage. |
00004F40 |
3701 |
5374 |
6172 |
7450 |
6167 |
6500 |
3501 |
5374 |
7.StartPage.5.St |
00004F50 |
6172 |
7444 |
6F63 |
4100 |
0801 |
5365 |
7441 |
626F |
artDocA...SetAbo |
00004F60 |
7274 |
5072 |
6F63 |
0000 |
C900 |
4765 |
7454 |
6578 |
rtProc....GetTex |
00004F70 |
7445 |
7874 |
656E |
7450 |
6F69 |
6E74 |
4100 |
8E00 |
tExtentPointA.. |
00004F80 |
4765 |
7444 |
6576 |
6963 |
6543 |
6170 |
7300 |
2B00 |
GetDeviceCaps.+. |
00004F90 |
4372 |
6561 |
7465 |
466F |
6E74 |
4100 |
CD00 |
4765 |
CreateFontA...Ge |
00004FA0 |
7454 |
6578 |
744D |
6574 |
7269 |
6373 |
4100 |
0D01 |
tTextMetricsA... |
00004FB0 |
5365 |
7442 |
6B4D |
6F64 |
6500 |
1C01 |
5365 |
744D |
SetBkMode...SetM |
00004FC0 |
6170 |
4D6F |
6465 |
0000 |
D700 |
4C50 |
746F |
4450 |
apMode....LPtoDP |
00004FD0 |
0000 |
3201 |
5365 |
7457 |
696E |
646E |
7745 |
7874 |
..2.SetWindowExt |
00004FE0 |
4578 |
0000 |
2F01 |
5365 |
7456 |
6965 |
7770 |
6F72 |
Ex../.SetViewpor |
00004FF0 |
7445 |
7874 |
4578 |
0000 |
C200 |
4765 |
7454 |
6578 |
tExtEx....GetTex |
00005000 |
7443 |
6861 |
7273 |
6574 |
0000 |
2000 |
4372 |
6561 |
tCharset.. .Crea |
00005010 |
7465 |
4443 |
4100 |
4744 |
4933 |
322E |
646C |
6C00 |
teDCA.GDI32.dll. |
00005020 |
0200 |
436F |
6D6D |
446C |
6745 |
7874 |
656E |
6465 |
..CommDlgExtende |
00005030 |
6445 |
7272 |
6F72 |
0000 |
0600 |
4765 |
7453 |
6176 |
dError....GetSav |
00005040 |
6546 |
696C |
654E |
616D |
6541 |
0000 |
0700 |
5061 |
eFileNameA....Pa |
00005050 |
6765 |
5365 |
7475 |
7044 |
6C67 |
4100 |
0300 |
4669 |
geSetupDlgA...Fi |
00005060 |
6E64 |
5465 |
7874 |
4100 |
0500 |
4765 |
744F |
7065 |
ndTextA...GetOpe |
00005070 |
6E46 |
696C |
654E |
616D |
6541 |
0000 |
0400 |
4765 |
nFileNameA....Ge |
00005080 |
7446 |
696C |
6554 |
6974 |
6C65 |
4100 |
636F |
6D64 |
tFileTitleA.Comd |
00005090 |
6C67 |
3332 |
2E64 |
6C6C |
0000 |
0000 |
0000 |
0000 |
lg32.dll........ |
000050A0 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
000050B0 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
000050C0 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
000050D0 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
000050E0 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
000050F0 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
00005100 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
00005110 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
00005120 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
00005130 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
00005140 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
00005150 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
00005160 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
00005170 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
00005180 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
00005190 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
000051A0 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
000051B0 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
000051C0 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
000051D0 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
000051E0 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
000051F0 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
................ |
00005200 |
|
|
|
|
|
|
|
|
|
|
Il y a une chose qui fait que cet IAT n'entre pas dans la norme. Enfin bien
sûr que si, il suit bien une norme définit mais pas celle des petits
programmes triviaux.
On a vu que les RVA qui constituent les membres de ORIGINAL_FIRST_THUNK et de
FIRST_THUNK ne sont pas identiques alors que normalement ils devraient l'être.
Voici le principe de base :
Quand on exécute un programme, le Loader de Windows le mappe en mémoire.
l'IAT comme tout le reste du programme est entièrement recopié
et ce qui doit se passer en tant normal, c'est que pour chaque fonction, le
Loader remplace les RVA FirstThunk par les vraies adresses où on peut
trouver les fonctions.
Mais ici ce qui est fait, c'est que les RVA FirstThunk n'en sont plus, ce sont
directement les adresses des fonctions comme on les auraient trouvés
une fois le programme mappé. La raison c'est que cet exécutable
a été lié grâce au petit programme Bind.exe. Lié
ça veut dire que le programme Bind.exe a remplacé les FIRST THUNK
par les adresses des fonctions, il a fait directement dans le fichier le travail
que le Loader aurait normalement fait en mémoire. L'avantage c'est que
puisqu'il a pu prévoir directement ces adresses, l'exécutable
se lancera plus rapidement, c'est tout. Alors comment le Loader du système
sait ou non qu'il a à faire à des RVAs ou à de vraies adresses
?
Et bien si TimeDateStamp est NULL c'est que les structures FIRST_THUNK contiennent
des RVA. Sinon FIRST_THUNK sont des adresses et dans ce cas TimeDateStamp represente
la date et l'heure de création de la DLL. Dans le programme lié,
le membre TimeDateStamp de chaque structure IMAGE_IMPORT_DESCRIPTOR est alors
comparé au TimeDateStamp unique de la DLL en question. Si ils sont semblables,
c'est que les adresses contenus dans les FIRST_THUNK sont bien les adresses
correctes des fonctions de cette DLL. Si les TimeDateStamp du programme et celui
de la DLLs sont différents, ça signifie que la version de votre
DLL n'est pas celle qui avait été utilisée au moment de
linker votre programme (grâce à Bind.exe) et dans ce cas le Loader
de Windows revient consulter les structures ORIGINAL_FIRST_THUNK pour retrouver
des RVA et ensuite retrouver les bonnes adresses puis il écrase les anciennes
adresses contenues dans les FIRST_THUNK par les bonnes qui sont d'actualité.
Le membre Forwarder de la structure IMAGE_IMPORT_DESCRIPTOR est un membre avancé
qui est utilisé pour certains types particuliers de fonctions importées.
Il est mis à -1 en temps normal sauf si la fonction exportée par
la DLL provient en fait d'une autre DLL. Dans ce cas, la DLL sert un peu de
relai entre le programme et une autre DLL qui possède en réalité
cette fonction.